home *** CD-ROM | disk | FTP | other *** search
/ Experimental BBS Explossion 3 / Experimental BBS Explossion III.iso / games / nhak_src.zip / EXTERN.H < prev    next >
C/C++ Source or Header  |  1993-03-16  |  44KB  |  1,554 lines

  1. /*    SCCS Id: @(#)extern.h    3.0    89/11/22
  2. /*     Copyright (c)   Steve Creps, 1988.          */
  3. /* NetHack may be freely redistributed.  See license for details. */
  4.  
  5. #ifndef EXTERN_H
  6. #define EXTERN_H
  7.  
  8. #if defined(MSDOS) && defined(MSC)
  9. /* MSC include files do not contain "extern" keyword */
  10. #define E
  11. #else
  12. #define E extern
  13. #endif
  14.  
  15. /* ### allmain.c ### */
  16.  
  17. E int NDECL((*occupation));
  18. E int NDECL((*afternmv));
  19. E void NDECL(moveloop);
  20. E void NDECL(stop_occupation);
  21. E void NDECL(newgame);
  22.  
  23. /* ### alloc.c ### */
  24.  
  25. #ifndef __TURBOC__
  26. E long *FDECL(alloc, (unsigned int));
  27. #endif
  28.  
  29. #if !defined(MAKEDEFS_C) && !defined(LEV_LEX_C)
  30.  
  31. /* ### amiwbench.c ### */
  32.  
  33. #ifdef AMIGA_WBENCH
  34. E void FDECL(ami_wbench_init,(int,char *[]));    
  35. E void NDECL(ami_wbench_args);
  36. E int FDECL(ami_wbench_getsave,(int));
  37. E void FDECL(ami_wbench_unlink,(char *));
  38. E int FDECL(ami_wbench_iconsize,(char *));
  39. E void FDECL(ami_wbench_iconwrite,(char *));
  40. E int FDECL(ami_wbench_badopt,(char *));
  41. E void NDECL(ami_wbench_cleanup);
  42. #endif /* AMIGA_WBENCH */
  43.  
  44. /* ### apply.c ### */
  45.  
  46. #ifdef OVERLAY
  47. E int NDECL(dig);
  48. #endif
  49. E int NDECL(doapply);
  50. E int NDECL(holetime);
  51. E void NDECL(dighole);
  52. E int NDECL(dorub);
  53. E int NDECL(dojump);
  54. #ifdef WALKIES
  55. E int NDECL(number_leashed);
  56. E void FDECL(o_unleash, (struct obj *));
  57. E void FDECL(m_unleash, (struct monst *));
  58. E void NDECL(unleash_all);
  59. E boolean NDECL(next_to_u);
  60. E struct obj *FDECL(get_mleash, (struct monst *));
  61. E void FDECL(check_leash, (XCHAR_P,XCHAR_P));
  62. #endif
  63. E boolean FDECL(um_dist, (XCHAR_P,XCHAR_P,XCHAR_P));
  64. E int FDECL(use_unicorn_horn, (struct obj *));
  65.  
  66. /* ### artifact.c ### */
  67.  
  68. #ifdef NAMED_ITEMS
  69. E void NDECL(init_exists);
  70. E void FDECL(mkartifact, (struct obj **));
  71. E boolean FDECL(is_artifact, (struct obj *));
  72. E boolean FDECL(exist_artifact, (struct obj *,const char *));
  73. E void FDECL(artifact_exists, (struct obj *,const char *,BOOLEAN_P));
  74. E boolean FDECL(spec_ability, (struct obj *,unsigned));
  75. E int FDECL(restr_name, (struct obj *,char *));
  76. # if defined(THEOLOGY) && defined(ALTARS)
  77. E struct obj *FDECL(mk_aligned_artifact, (unsigned));
  78. # endif
  79. E int FDECL(defends, (int,struct obj *));
  80. E int FDECL(spec_abon, (struct obj *,struct permonst *));
  81. E int FDECL(spec_dbon, (struct obj *,struct permonst *,int));
  82. #endif
  83.  
  84. /* ### attrib.c ### */
  85.  
  86. E void FDECL(adjattrib, (int,int,BOOLEAN_P));
  87. E void FDECL(change_luck, (SCHAR_P));
  88. E int FDECL(stone_luck, (BOOLEAN_P));
  89. E void FDECL(gainstr, (struct obj *,int));
  90. E void FDECL(losestr, (int));
  91. E void NDECL(restore_attrib);
  92. E void FDECL(init_attr, (int));
  93. E void NDECL(redist_attr);
  94. E void FDECL(adjabil, (int,int));
  95. E int NDECL(newhp);
  96. E schar FDECL(acurr, (int));
  97. E void FDECL(adjalign, (int));
  98.  
  99. /* ### bones.c ### */
  100.  
  101. E void NDECL(savebones);
  102. E int NDECL(getbones);
  103. E void FDECL(name_file, (char *,int));
  104.  
  105. /* ### cmd.c ### */
  106.  
  107. #ifdef OVERLAY
  108. E int NDECL(doextcmd);
  109. #ifdef POLYSELF
  110. E int NDECL(domonability);
  111. #endif /* POLYSELF */
  112. E int NDECL(timed_occupation);
  113. #if defined(WIZARD) || defined(EXPLORE_MODE)
  114. E int NDECL(wiz_attributes);
  115. #endif /* WIZARD */
  116. # ifdef EXPLORE_MODE
  117. E int NDECL(enter_explore_mode);
  118. # endif    /* EXPLORE_MODE */
  119. #ifdef WIZARD
  120. E int NDECL(wiz_detect);
  121. E int NDECL(wiz_genesis);
  122. E int NDECL(wiz_identify);
  123. E int NDECL(wiz_level_tele);
  124. E int NDECL(wiz_map);
  125. E int NDECL(wiz_where);
  126. E int NDECL(wiz_wish);
  127. #endif /* WIZARD */
  128. #endif /* OVERLAY */
  129. E void NDECL(reset_occupations);
  130. E void FDECL(set_occupation, (int NDECL((*)),const char *,int));
  131. #ifdef REDO
  132. E char NDECL(pgetchar);
  133. E void FDECL(pushch, (CHAR_P));
  134. E void FDECL(savech, (CHAR_P));
  135. #endif
  136. E void FDECL(rhack, (char *));
  137. E char FDECL(lowc, (CHAR_P));
  138. E void NDECL(enlightenment);
  139. E int FDECL(xytod, (SCHAR_P,SCHAR_P));
  140. E void FDECL(dtoxy, (coord *,int));
  141. E int FDECL(movecmd, (CHAR_P));
  142. E int FDECL(getdir, (BOOLEAN_P));
  143. E void NDECL(confdir);
  144. E int FDECL(isok, (int,int));
  145. E int NDECL(doextlist);
  146.  
  147. /* ### dbridge.c ### */
  148.  
  149. E boolean FDECL(is_pool, (int,int));
  150. #ifdef STRONGHOLD
  151. E void FDECL(initsym, (int,int));
  152. E int FDECL(is_drawbridge_wall, (int, int));
  153. E boolean FDECL(is_db_wall, (int, int));
  154. E boolean FDECL(find_drawbridge, (int *, int*));
  155. E boolean FDECL(create_drawbridge, (int, int, int, BOOLEAN_P));
  156. E void FDECL(open_drawbridge, (int, int));
  157. E void FDECL(close_drawbridge, (int, int));
  158. E void FDECL(destroy_drawbridge, (int, int));
  159. #endif    /* STRONGHOLD /**/
  160.  
  161. /* ### decl.c ### */
  162.  
  163. /* ### demon.c ### */
  164.  
  165. E void FDECL(dsummon, (struct permonst *));
  166. E int FDECL(demon_talk, (struct monst *));
  167. E long FDECL(bribe, (struct monst *));
  168. E int NDECL(dprince);
  169. E int NDECL(dlord);
  170. E int NDECL(ndemon);
  171.  
  172. /* ### do.c ### */
  173.  
  174. #ifdef OVERLAY
  175. E int FDECL(drop, (struct obj *));
  176. E int NDECL(wipeoff);
  177. #endif
  178. E int NDECL(dodrop);
  179. E boolean FDECL(flooreffects, (struct obj *,int,int));
  180. #ifdef ALTARS
  181. E void FDECL(doaltarobj, (struct obj *));
  182. #endif
  183. E boolean FDECL(canletgo, (struct obj *,const char *));
  184. E void FDECL(dropx, (struct obj *));
  185. E void FDECL(dropy, (struct obj *));
  186. E int NDECL(doddrop);
  187. E int NDECL(dodown);
  188. E int NDECL(doup);
  189. E void FDECL(goto_level, (int,BOOLEAN_P,BOOLEAN_P));
  190. E int NDECL(donull);
  191. E int NDECL(dowipe);
  192. E struct obj *FDECL(splitobj, (struct obj *,int));
  193. E void FDECL(set_wounded_legs, (long,int));
  194. E void NDECL(heal_legs);
  195.  
  196. /* ### do_name.c ### */
  197.  
  198. E void FDECL(getpos, (coord *,int,const char *));
  199. E struct monst *FDECL(christen_monst, (struct monst *,const char *));
  200. E int NDECL(do_mname);
  201. E struct obj *FDECL(oname, (struct obj *,const char *,int));
  202. E int NDECL(ddocall);
  203. E void FDECL(docall, (struct obj *));
  204. E char *FDECL(x_monnam, (struct monst *,int));
  205. E char *FDECL(lmonnam, (struct monst *));
  206. E char *FDECL(mon_nam, (struct monst *));
  207. E char *FDECL(Monnam, (struct monst *));
  208. E char *FDECL(a_monnam, (struct monst *,const char *));
  209. E char *FDECL(a2_monnam, (struct monst *,const char *));
  210. E char *FDECL(Amonnam, (struct monst *,const char *));
  211. E char *FDECL(Xmonnam, (struct monst *));
  212. E char *FDECL(defmonnam, (struct monst *));
  213. E const char *NDECL(rndmonnam);
  214. E char *FDECL(self_pronoun, (const char *,const char *));
  215. #ifdef REINCARNATION
  216. E const char *NDECL(roguename);
  217. #endif
  218.  
  219. /* ### do_wear.c ### */
  220.  
  221. #ifdef OVERLAY
  222. E int NDECL(Armor_on);
  223. E int NDECL(Boots_on);
  224. E int NDECL(Gloves_on);
  225. E int NDECL(Helmet_on);
  226. E int FDECL(select_off, (struct obj *));
  227. E int NDECL(take_off);
  228. #endif
  229. E void FDECL(off_msg, (struct obj *));
  230. E boolean FDECL(is_helmet, (struct obj *));
  231. E boolean FDECL(is_gloves, (struct obj *));
  232. E boolean FDECL(is_boots, (struct obj *));
  233. E boolean FDECL(is_cloak, (struct obj *));
  234. E boolean FDECL(is_shield, (struct obj *));
  235. E void NDECL(set_wear);
  236. E boolean FDECL(donning, (struct obj *));
  237. E void NDECL(cancel_don);
  238. E int NDECL(Armor_off);
  239. E int NDECL(Armor_gone);
  240. E int NDECL(Helmet_off);
  241. E int NDECL(Gloves_off);
  242. E int NDECL(Boots_off);
  243. E int NDECL(Cloak_off);
  244. E int NDECL(Shield_off);
  245. E void NDECL(Amulet_off);
  246. E void FDECL(Ring_on, (struct obj *));
  247. E void FDECL(Ring_off, (struct obj *));
  248. E void FDECL(Ring_gone, (struct obj *));
  249. E void FDECL(Blindf_on, (struct obj *));
  250. E void FDECL(Blindf_off, (struct obj *));
  251. E int NDECL(dotakeoff);
  252. E int NDECL(doremring);
  253. E int FDECL(cursed, (struct obj *));
  254. E int FDECL(armoroff, (struct obj *));
  255. E int NDECL(dowear);
  256. E int NDECL(doputon);
  257. E void NDECL(find_ac);
  258. E void NDECL(glibr);
  259. E struct obj *NDECL(some_armor);
  260. E void NDECL(corrode_armor);
  261. E void NDECL(reset_remarm);
  262. E int NDECL(doddoremarm);
  263. E int FDECL(destroy_arm, (struct obj *));
  264. E void FDECL(adj_abon, (struct obj *,SCHAR_P));
  265.  
  266. /* ### dog.c ### */
  267.  
  268. E void FDECL(initedog, (struct monst *));
  269. E void FDECL(make_familiar, (struct obj *));
  270. E struct monst *NDECL(makedog);
  271. E void NDECL(losedogs);
  272. E void NDECL(keepdogs);
  273. E void FDECL(fall_down, (struct monst *,int));
  274. E int FDECL(dogfood, (struct monst *,struct obj *));
  275. E int FDECL(inroom, (XCHAR_P,XCHAR_P));
  276. E struct monst *FDECL(tamedog, (struct monst *,struct obj *));
  277.  
  278. /* ### dogmove.c ### */
  279.  
  280. E int FDECL(dog_move, (struct monst *,int));
  281.  
  282. /* ### dokick.c ### */
  283.  
  284. E boolean FDECL(ghitm, (struct monst *,long));
  285. E boolean FDECL(bad_kick_throw_pos, (XCHAR_P,XCHAR_P));
  286. E struct monst *FDECL(ghit, (int,int,int));
  287. E int NDECL(dokick);
  288.  
  289. /* ### dothrow.c ### */
  290.  
  291. E int NDECL(dothrow);
  292. E int FDECL(throwit, (struct obj *));
  293. E int FDECL(thitmonst, (struct monst *,struct obj *));
  294. E int FDECL(breaks, (struct obj *,BOOLEAN_P));
  295.  
  296. /* ### eat.c ### */
  297.  
  298. #ifdef OVERLAY
  299. E int NDECL(Meatdone);
  300. E int NDECL(eatfood);
  301. E int NDECL(opentin);
  302. E int NDECL(unfaint);
  303. #endif
  304. #ifdef POLYSELF
  305. E boolean FDECL(is_edible, (struct obj *));
  306. #endif
  307. E void NDECL(init_uhunger);
  308. E int NDECL(Hear_again);
  309. E void NDECL(reset_eat);
  310. E int NDECL(doeat);
  311. E void NDECL(gethungry);
  312. E void FDECL(morehungry, (int));
  313. E void FDECL(lesshungry, (int));
  314. E boolean NDECL(is_fainted);
  315. E void NDECL(reset_faint);
  316. E void NDECL(sync_hunger);
  317. E void FDECL(newuhs, (BOOLEAN_P));
  318. E struct obj *FDECL(floorfood, (const char *,BOOLEAN_P));
  319. E void NDECL(vomit);
  320. E int FDECL(eaten_stat, (int, struct obj *));
  321. E void FDECL(food_disappears, (struct obj *));
  322.  
  323. /* ### end.c ### */
  324.  
  325. E int NDECL(done1);
  326. E int NDECL(done2);
  327. #ifdef OVERLAY
  328. E int NDECL(done_intr);
  329. #endif
  330. E void FDECL(done_in_by, (struct monst *));
  331. E void VDECL(panic, (const char *,...));
  332. E void FDECL(done, (int));
  333. E void NDECL(clearlocks);
  334. #ifdef NOSAVEONHANGUP
  335. E void NDECL(hangup);
  336. #endif
  337.  
  338. /* ### engrave.c ### */
  339.  
  340. #ifdef ELBERETH
  341. E int FDECL(sengr_at, (const char *,XCHAR_P,XCHAR_P));
  342. #endif
  343. E void FDECL(u_wipe_engr, (int));
  344. E void FDECL(wipe_engr_at, (XCHAR_P,XCHAR_P,XCHAR_P));
  345. E void FDECL(read_engr_at, (int,int));
  346. E void FDECL(make_engr_at, (int,int,const char *));
  347. E int NDECL(freehand);
  348. E int NDECL(doengrave);
  349. E void FDECL(save_engravings, (int));
  350. E void FDECL(rest_engravings, (int));
  351.  
  352. /* ### exper.c ### */
  353.  
  354. E long FDECL(newuexp, (unsigned));
  355. E int FDECL(experience, (struct monst *,int));
  356. E void FDECL(more_experienced, (int,int));
  357. E void NDECL(losexp);
  358. E void NDECL(newexplevel);
  359. E void NDECL(pluslvl);
  360. E long NDECL(rndexp);
  361.  
  362. /* ### extralev.c ### */
  363.  
  364. #ifdef REINCARNATION
  365. E void NDECL(makeroguerooms);
  366. E void FDECL(corr, (int,int));
  367. E void NDECL(makerogueghost);
  368. #endif
  369.  
  370. /* ### fountain.c ### */
  371.  
  372. #ifdef FOUNTAINS
  373. E void NDECL(dryup);
  374. E void NDECL(drinkfountain);
  375. E void FDECL(dipfountain, (struct obj *));
  376. #endif /* FOUNTAINS */
  377. #ifdef SINKS
  378. E void NDECL(drinksink);
  379. #endif
  380.  
  381. /* ### getline.c ### */
  382.  
  383. E void FDECL(getlin, (char *));
  384. E void NDECL(getret);
  385. E void FDECL(cgetret, (const char *));
  386. E void FDECL(xwaitforspace, (const char *));
  387. E char *NDECL(parse);
  388. E char NDECL(readchar);
  389. #ifdef COM_COMPL
  390. E void FDECL(get_ext_cmd, (char *));
  391. #endif /* COM_COMPL */
  392.  
  393. /* ### hack.c ### */
  394.  
  395. E void NDECL(unsee);
  396. E void FDECL(seeoff, (int));
  397. E void FDECL(movobj, (struct obj *,XCHAR_P,XCHAR_P));
  398. E boolean FDECL(may_dig, (XCHAR_P,XCHAR_P));
  399. E void NDECL(domove);
  400. E void NDECL(spoteffects);
  401. E int NDECL(dopickup);
  402. E void NDECL(lookaround);
  403. E int NDECL(monster_nearby);
  404. E int FDECL(cansee, (XCHAR_P,XCHAR_P));
  405. E int FDECL(sgn, (int));
  406. E void FDECL(getcorners, (xchar *,xchar *,xchar *,xchar *,xchar *,xchar *,xchar *,xchar *));
  407. E void NDECL(setsee);
  408. E void FDECL(nomul, (int));
  409. E void FDECL(losehp, (int,const char *,BOOLEAN_P));
  410. E int NDECL(weight_cap);
  411. E int NDECL(inv_weight);
  412. E int NDECL(inv_cnt);
  413. E int FDECL(identify, (struct obj *));
  414. #ifdef STUPID_CPP    /* otherwise these functions are macros in hack.h */
  415. E char NDECL(yn);
  416. E char NDECL(ynq);
  417. E char NDECL(ynaq);
  418. E char NDECL(nyaq);
  419. E char *FDECL(plur, (long));
  420. E void FDECL(makeknown, (unsigned));
  421. #endif
  422.  
  423. /* ### invent.c ### */
  424.  
  425. #ifdef OVERLAY
  426. E int FDECL(ckunpaid, (struct obj *));
  427. #endif
  428. E struct obj *FDECL(addinv, (struct obj *));
  429. E void FDECL(useup, (struct obj *));
  430. E void FDECL(freeinv, (struct obj *));
  431. E void FDECL(delobj, (struct obj *));
  432. E void FDECL(freeobj, (struct obj *));
  433. E void FDECL(freegold, (struct gold *));
  434. E struct obj *FDECL(sobj_at, (int,int,int));
  435. E int FDECL(carried, (struct obj *));
  436. E struct obj *FDECL(carrying, (int));
  437. E boolean NDECL(have_lizard);
  438. E struct obj *FDECL(o_on, (unsigned int,struct obj *));
  439. E boolean FDECL(obj_here, (struct obj *,int,int));
  440. E struct gold *FDECL(g_at, (int,int));
  441. E struct obj *FDECL(getobj, (const char *,const char *));
  442. E int FDECL(ggetobj, (const char *,int FDECL((*),(struct obj *)),int));
  443. E int FDECL(askchain, (struct obj *,int,const char *,int,int FDECL((*),(struct obj *)),int FDECL((*),(struct obj *)),int,const char *));
  444. E void FDECL(prinv, (struct obj *));
  445. E int NDECL(ddoinv);
  446. E void FDECL(doinv, (const char *));
  447. E int NDECL(dotypeinv);
  448. E int NDECL(dolook);
  449. E void FDECL(stackobj, (struct obj *));
  450. E int NDECL(doprgold);
  451. E int NDECL(doprwep);
  452. E int NDECL(doprarm);
  453. E int NDECL(doprring);
  454. E int NDECL(dopramulet);
  455. E int NDECL(doprtool);
  456. E int FDECL(digit, (CHAR_P));
  457. E void FDECL(useupf, (struct obj *));
  458. E char *FDECL(let_to_name, (CHAR_P));
  459. E void NDECL(reassign);
  460.  
  461. /* ### ioctl.c ### */
  462.  
  463. #ifdef UNIX
  464. E void NDECL(getioctls);
  465. E void NDECL(setioctls);
  466. # ifdef SUSPEND
  467. E int NDECL(dosuspend);
  468. # endif /* SUSPEND */
  469. #endif /* UNIX */
  470.  
  471. /* ### lock.c ### */
  472.  
  473. #ifdef OVERLAY
  474. E int NDECL(forcelock);
  475. E int NDECL(picklock);
  476. #endif
  477. E void NDECL(reset_pick);
  478. E int FDECL(pick_lock, (struct obj *));
  479. E int NDECL(doforce);
  480. E int FDECL(boxlock, (struct obj *,struct obj *));
  481. E int FDECL(doorlock, (struct obj *,int,int));
  482. E int NDECL(doopen);
  483. E int NDECL(doclose);
  484.  
  485. /* ### mac.c ### */
  486. /* All of these Mac-specific declarations LOOK like they should take the
  487.    NDECL() form, but don't be fooled: it's just that (at the time of
  488.    writing) the Mac C compilers are all pre-ANSI and the prototype
  489.    information isn't recorded here anyway. sps 89dec14
  490. */
  491. #ifdef MACOS
  492. E int tgetch();
  493. E void gethdate();
  494. E int uptodate();
  495. # ifndef THINKC4
  496. E char *getenv();
  497. E int memcmp();
  498. # else
  499. E int kbhit();
  500. # endif
  501. E int mcurs();
  502. E int mputc();
  503. E int mputs();
  504. E int mprintf();
  505. E DialogTHndl centreDlgBox();
  506. E int about();
  507. #endif  /* MACOS */
  508.  
  509. /* ### macfile.c ### */
  510. #ifdef MACOS
  511. E short findNamedFile();
  512. E FILE *openFile();
  513. #endif    /* MACOS */
  514.  
  515. /* ### macinit.c ### */
  516. #ifdef MACOS
  517. E int initterm();
  518. E int freeterm();
  519. E int read_config_file();
  520. E int write_opts();
  521. #endif
  522. #ifdef SMALLDATA
  523. E void init_decl();
  524. E void free_decl();
  525. #endif  /* SMALLDATA */
  526.  
  527. /* ### mail.c ### */
  528.  
  529. #ifdef MAIL
  530. # ifdef UNIX
  531. E void NDECL(getmailstatus);
  532. # endif
  533. E void NDECL(ckmailstatus);
  534. E void NDECL(readmail);
  535. #endif /* MAIL */
  536.  
  537. /* ### makemon.c ### */
  538.  
  539. E struct monst *FDECL(makemon, (struct permonst *,int,int));
  540. E boolean FDECL(enexto, (coord *,XCHAR_P,XCHAR_P,struct permonst *));
  541. E int FDECL(goodpos, (int,int, struct permonst *));
  542. E void FDECL(rloc, (struct monst *));
  543. E void FDECL(vloc, (struct monst *));
  544. E void NDECL(init_monstr);
  545. E struct permonst *NDECL(rndmonst);
  546. E struct permonst *FDECL(mkclass, (CHAR_P));
  547. E int FDECL(adj_lev, (struct permonst *));
  548. E struct permonst *FDECL(grow_up, (struct monst *));
  549. E int FDECL(mongets, (struct monst *,int));
  550. #ifdef GOLEMS
  551. E int FDECL(golemhp, (int));
  552. #endif /* GOLEMS */
  553. E boolean FDECL(peace_minded, (struct permonst *));
  554. E void FDECL(set_malign, (struct monst *));
  555. E void FDECL(set_mimic_sym, (struct monst *));
  556.  
  557. /* ### mcastu.c ### */
  558.  
  559. E int FDECL(castmu, (struct monst *,struct attack *));
  560. E int FDECL(buzzmu, (struct monst *,struct attack *));
  561.  
  562. /* ### mhitm.c ### */
  563.  
  564. E int FDECL(fightm, (struct monst *));
  565. E int FDECL(mattackm, (struct monst *,struct monst *));
  566. E int FDECL(noattacks, (struct permonst *));
  567.  
  568. /* ### mhitu.c ### */
  569.  
  570. #ifdef POLYSELF
  571. E struct monst *NDECL(cloneu);
  572. #endif
  573. E void FDECL(expels, (struct monst *,struct permonst *,BOOLEAN_P));
  574. E int FDECL(mattacku, (struct monst *));
  575. E void FDECL(mdamageu, (struct monst *,int));
  576. E int FDECL(could_seduce, (struct monst *,struct monst *,struct attack *));
  577. #ifdef SEDUCE
  578. E int FDECL(doseduce, (struct monst *));
  579. #endif
  580.  
  581. /* ### mklev.c ### */
  582.  
  583. E int FDECL(somex, (struct mkroom *));
  584. E int FDECL(somey, (struct mkroom *));
  585. #ifdef OVERLAY
  586. E int FDECL(comp, (genericptr_t, genericptr_t));
  587. #endif
  588. #ifdef ORACLE
  589. E boolean FDECL(place_oracle, (struct mkroom *,int *,int *,int *));
  590. #endif
  591. E void NDECL(mklev);
  592. E int FDECL(okdoor, (XCHAR_P,XCHAR_P));
  593. E void FDECL(dodoor, (int,int,struct mkroom *));
  594. E void FDECL(mktrap, (int,int,struct mkroom *));
  595. #ifdef FOUNTAINS
  596. E void FDECL(mkfount, (int,struct mkroom *));
  597. #endif
  598.  
  599. /* ### mkmaze.c ### */
  600.  
  601. #if defined(WALLIFIED_MAZE) || defined(STRONGHOLD)
  602. E void FDECL(wallification, (int,int,int,int,BOOLEAN_P));
  603. #endif
  604. E void FDECL(walkfrom, (int,int));
  605. E void NDECL(makemaz);
  606. E void FDECL(move, (int *,int *,int));
  607. E void FDECL(mazexy, (coord *));
  608. E void NDECL(bound_digging);
  609.  
  610. /* ### mkobj.c ### */
  611.  
  612. E struct obj *FDECL(mkobj_at, (CHAR_P,int,int,BOOLEAN_P));
  613. E struct obj *FDECL(mksobj_at, (int,int,int));
  614. E struct obj *FDECL(mkobj, (CHAR_P,BOOLEAN_P));
  615. E int NDECL(rndmonnum);
  616. E struct obj *FDECL(mksobj, (int,BOOLEAN_P));
  617. E int FDECL(letter, (int));
  618. E int FDECL(weight, (struct obj *));
  619. E void FDECL(mkgold, (long,int,int));
  620. E struct obj *FDECL(mkcorpstat, (int,struct permonst *,int,int));
  621. E struct obj *FDECL(mk_tt_object, (int,int,int));
  622. E struct obj *FDECL(mk_named_object, (int,struct permonst *,int,int,char *,int));
  623. E void FDECL(bless, (struct obj *));
  624. E void FDECL(curse, (struct obj *));
  625. E void FDECL(blessorcurse, (struct obj *,int));
  626. E boolean FDECL(is_flammable, (struct obj *));
  627. #ifdef STUPID_CPP
  628. E boolean FDECL(is_rustprone, (struct obj *));
  629. E boolean FDECL(is_corrodeable, (struct obj *));
  630. E boolean FDECL(OBJ_AT, (int, int));
  631. #endif
  632. E void FDECL(place_object, (struct obj *,int,int));
  633. E void FDECL(move_object, (struct obj *,int,int));
  634. E void FDECL(remove_object, (struct obj *));
  635. E int FDECL(bcsign, (struct obj *));
  636.  
  637. /* ### mkroom.c ### */
  638.  
  639. E void FDECL(mkroom, (int));
  640. #if defined(ALTARS) && defined(THEOLOGY)
  641. E void FDECL(shrine_pos, (int *, int*, struct mkroom *));
  642. #endif
  643. E boolean FDECL(nexttodoor, (int,int));
  644. E boolean FDECL(has_dnstairs, (struct mkroom *));
  645. E boolean FDECL(has_upstairs, (struct mkroom *));
  646. E int FDECL(dist2, (int,int,int,int));
  647. #ifdef THRONES
  648. E struct permonst *NDECL(courtmon);
  649. #endif
  650.  
  651. /* ### mon.c ### */
  652.  
  653. E void NDECL(movemon);
  654. E void FDECL(meatgold, (struct monst *));
  655. E void FDECL(meatobj, (struct monst *));
  656. E void FDECL(mpickgold, (struct monst *));
  657. E void FDECL(mpickgems, (struct monst *));
  658. E int FDECL(curr_mon_load, (struct monst *));
  659. E int FDECL(max_mon_load, (struct monst *));
  660. E boolean FDECL(can_carry, (struct monst *,struct obj *));
  661. E void FDECL(mpickstuff, (struct monst *,const char *));
  662. E int FDECL(mfndpos, (struct monst *,coord *,long *,long));
  663. E int FDECL(dist, (int,int));
  664. E boolean FDECL(monnear, (struct monst *,int,int));
  665. E void FDECL(poisontell, (int));
  666. E void FDECL(poisoned, (const char *,int,const char *,int));
  667. E void FDECL(mondead, (struct monst *));
  668. E void FDECL(replmon, (struct monst *,struct monst *));
  669. E void FDECL(relmon, (struct monst *));
  670. E void FDECL(monfree, (struct monst *));
  671. E void FDECL(unstuck, (struct monst *));
  672. E void FDECL(killed, (struct monst *));
  673. E void FDECL(xkilled, (struct monst *,int));
  674. E void NDECL(rescham);
  675. E void NDECL(restartcham);
  676. E int FDECL(newcham, (struct monst *,struct permonst *));
  677. E void FDECL(mnexto, (struct monst *));
  678. E void FDECL(mnearto, (struct monst *, XCHAR_P, XCHAR_P, BOOLEAN_P));
  679. E void FDECL(setmangry, (struct monst *));
  680. E int FDECL(disturb, (struct monst *));
  681. E void FDECL(mondied, (struct monst *));
  682. E void FDECL(mongone, (struct monst *));
  683. E void FDECL(monstone, (struct monst *));
  684. #ifdef GOLEMS
  685. E void FDECL(golemeffects, (struct monst *, int, int));
  686. #endif /* GOLEMS */
  687.  
  688. /* ### mondata.c ### */
  689.  
  690. E boolean FDECL(attacktype, (struct permonst *,int));
  691. E boolean FDECL(resists_ston, (struct permonst *));
  692. E boolean FDECL(resists_drli, (struct permonst *));
  693. E boolean FDECL(ranged_attk, (struct permonst *));
  694. E boolean FDECL(can_track, (struct permonst *));
  695. #ifdef POLYSELF
  696. E boolean FDECL(breakarm, (struct permonst *));
  697. E boolean FDECL(sliparm, (struct permonst *));
  698. #endif
  699. E boolean FDECL(sticks, (struct permonst *));
  700. E boolean FDECL(canseemon, (struct monst *));
  701. E boolean FDECL(dmgtype, (struct permonst *,int));
  702. E int FDECL(monsndx, (struct permonst *));
  703. E int FDECL(name_to_mon, (char *));
  704. #ifdef POLYSELF
  705. E boolean FDECL(webmaker, (struct permonst *));
  706. #endif
  707. E boolean FDECL(is_female, (struct monst *));
  708. E int FDECL(gender, (struct monst *));
  709. E boolean FDECL(levl_follower, (struct monst *));
  710. E struct permonst *NDECL(player_mon);
  711. E int FDECL(little_to_big, (int));
  712. E int FDECL(big_to_little, (int));     
  713. E const char *FDECL(locomotion, (const struct permonst *,const char *));
  714.  
  715. /* ### monmove.c ### */
  716.  
  717. E boolean FDECL(mb_trapped, (struct monst *));
  718. E int FDECL(dochugw, (struct monst *));
  719. E boolean FDECL(onscary, (int,int,struct monst *));
  720. E int FDECL(dochug, (struct monst *));
  721. E int FDECL(m_move, (struct monst *,int));
  722. E boolean FDECL(closed_door, (int, int));
  723. E boolean FDECL(accessible, (int, int));
  724. E void FDECL(set_apparxy, (struct monst *));
  725. E boolean FDECL(mdig_tunnel, (struct monst *));
  726. #ifdef STUPID_CPP
  727. E boolean FDECL(MON_AT, (int, int));
  728. E void FDECL(place_monster, (struct monst *, int, int));
  729. E void FDECL(place_worm_seg, (struct monst *, int, int));
  730. E void FDECL(remove_monster, (int, int));
  731. E struct monst *FDECL(m_at, (int, int));
  732. #endif
  733.  
  734. /* ### monst.c ### */
  735.  
  736. /* ### msdos.c ### */
  737.  
  738. #ifdef MSDOS
  739. E void NDECL(flushout);
  740. E int NDECL(tgetch);
  741. E int NDECL(dosh);
  742. # ifdef DGK
  743. E long FDECL(freediskspace, (char *));
  744. E long FDECL(filesize, (char *));
  745. E void FDECL(eraseall, (const char *,const char *));
  746. E void FDECL(copybones, (int));
  747. E void NDECL(playwoRAMdisk);
  748. E int FDECL(saveDiskPrompt, (int));
  749. E void NDECL(gameDiskPrompt);
  750. # endif
  751. E void NDECL(read_config_file);
  752. E void NDECL(set_lock_and_bones);
  753. E void FDECL(append_slash, (char *));
  754. E void FDECL(getreturn, (const char *));
  755. E void VDECL(msmsg, (const char *,...));
  756. E void FDECL(chdrive, (char *));
  757. # ifndef TOS
  758. E void NDECL(disable_ctrlP);
  759. E void NDECL(enable_ctrlP);
  760. # endif
  761. # ifdef DGK
  762. E FILE *FDECL(fopenp, (const char *,const char *));
  763. # endif
  764. E void FDECL(msexit, (int));
  765. # ifdef DGK
  766. E void NDECL(get_scr_size);
  767. #  ifndef TOS
  768. E void FDECL(gotoxy, (int,int));
  769. #  endif
  770. # endif
  771. #endif /* MSDOS */
  772. #ifdef TOS
  773. E int FDECL(_copyfile, (char *, char *));
  774. E int NDECL(kbhit);
  775. E void NDECL(restore_colors);
  776. E void NDECL(set_colors);
  777. #endif /* TOS */
  778.  
  779. /* ### mthrowu.c ### */
  780.  
  781. E int FDECL(thitu, (int,int,struct obj *,const char *));
  782. E int FDECL(thrwmu, (struct monst *));
  783. E int FDECL(spitmu, (struct monst *,struct attack *));
  784. E int FDECL(breamu, (struct monst *,struct attack *));
  785. E boolean FDECL(linedup, (XCHAR_P,XCHAR_P,XCHAR_P,XCHAR_P));
  786. E boolean FDECL(lined_up, (struct monst *));
  787. E struct obj *FDECL(m_carrying, (struct monst *,int));
  788. E void FDECL(m_useup, (struct monst *,struct obj *));
  789.  
  790. /* ### music.c ### */
  791.  
  792. #ifdef MUSIC
  793. E int FDECL(do_play_instrument, (struct obj *));
  794. #endif /* MUSIC /**/
  795.  
  796. /* ### o_init.c ### */
  797.  
  798. E int FDECL(letindex, (CHAR_P));
  799. E void NDECL(init_objects);
  800. E void NDECL(oinit);
  801. E void FDECL(savenames, (int));
  802. E void FDECL(restnames, (int));
  803. E int NDECL(dodiscovered);
  804.  
  805. /* ### objnam.c ### */
  806.  
  807. E char *FDECL(typename, (int));
  808. E char *FDECL(distant_name, (struct obj *, char *(*)(struct obj *)));
  809. E char *FDECL(xname, (struct obj *));
  810. E char *FDECL(doname, (struct obj *));
  811. E char *FDECL(singular, (struct obj *, char *(*)(struct obj *)));
  812. E char *FDECL(an, (const char *));
  813. E char *FDECL(An, (const char *));
  814. E char *FDECL(aobjnam, (struct obj *,const char *));
  815. E char *FDECL(Doname2, (struct obj *));
  816. E void FDECL(lcase, (char *));
  817. E char *FDECL(makeplural, (const char *));
  818. E char *FDECL(makesingular, (const char *));
  819. E struct obj *FDECL(readobjnam, (char *));
  820. E int FDECL(rnd_class, (int,int));
  821.  
  822. /* ### options.c ### */
  823.  
  824. E void NDECL(initoptions);
  825. E void FDECL(assign_graphics, (unsigned int *, int));
  826. E void NDECL(assign_ibm_graphics);
  827. E void NDECL(assign_dec_graphics);
  828. E void FDECL(parseoptions, (char *,BOOLEAN_P));
  829. E int NDECL(doset);
  830. E int NDECL(dotogglepickup);
  831. E void NDECL(option_help);
  832. E int FDECL(next_opt, (const char *));
  833. #ifdef TUTTI_FRUTTI
  834. E int FDECL(fruitadd, (char *));
  835. #endif
  836.  
  837. /* ### pager.c ### */
  838.  
  839. E int NDECL(dowhatis);
  840. E int NDECL(dowhatdoes);
  841. E void NDECL(set_whole_screen);
  842. #ifdef NEWS
  843. E int NDECL(readnews);
  844. #endif /* NEWS */
  845. E void FDECL(set_pager, (int));
  846. E int FDECL(page_line, (const char *));
  847. E void FDECL(cornline, (int,const char *));
  848. E int NDECL(dohelp);
  849. E int NDECL(dohistory);
  850. E int FDECL(page_file, (const char *,BOOLEAN_P));
  851. #ifdef UNIX
  852. # ifdef SHELL
  853. E int NDECL(dosh);
  854. # endif /* SHELL */
  855. # if defined(SHELL) || defined(DEF_PAGER) || defined(DEF_MAILREADER)
  856. E int FDECL(child, (int));
  857. # endif
  858. #endif /* UNIX */
  859.  
  860. /* ### pcmain.c ### */
  861.  
  862. #if defined(MSDOS) || defined(MACOS)
  863. E void NDECL(askname);
  864. # ifdef CHDIR
  865. E void FDECL(chdirx, (char *,BOOLEAN_P));
  866. # endif /* CHDIR */
  867. #endif /* MSDOS || MACOS */
  868.  
  869. /* ### pctty.c ### */
  870.  
  871. #if defined(MSDOS) || defined(MACOS)
  872. E void NDECL(gettty);
  873. E void FDECL(settty, (const char *));
  874. E void VDECL(error, (const char *,...));
  875. #endif /* MSDOS || MACOS  */
  876.  
  877. /* ### pcunix.c ### */
  878.  
  879. #if defined(MSDOS) || defined(MACOS)
  880. # ifndef OLD_TOS
  881. E void NDECL(setrandom);
  882. E int NDECL(getyear);
  883. E char *NDECL(getdate);
  884. E int NDECL(phase_of_the_moon);
  885. E int NDECL(night);
  886. E int NDECL(midnight);
  887. E void FDECL(gethdate, (char *));
  888. E int FDECL(uptodate, (int));
  889. # endif /* TOS */
  890. E void FDECL(regularize, (char *));
  891. #endif /* MSDOS */
  892.  
  893. /* ### pickup.c ### */
  894.  
  895. #ifdef OVERLAY
  896. E int FDECL(ck_bag, (struct obj *));
  897. E int FDECL(ck_container, (struct obj *));
  898. E int FDECL(in_container, (struct obj *));
  899. E int FDECL(out_container, (struct obj *));
  900. #endif
  901. E void FDECL(pickup, (int));
  902. E struct obj *FDECL(pick_obj, (struct obj *));
  903. E int NDECL(doloot);
  904. E void FDECL(use_container, (struct obj *, int));
  905. E void FDECL(inc_cwt, (struct obj *, struct obj *));
  906. E void FDECL(delete_contents, (struct obj *));
  907. E void FDECL(dec_cwt, (struct obj *, struct obj *));
  908.  
  909. /* ### polyself.c ### */
  910.  
  911. E void NDECL(newman);
  912. #ifdef POLYSELF
  913. E void NDECL(polyself);
  914. E int FDECL(polymon, (int));
  915. E void NDECL(rehumanize);
  916. E int NDECL(dobreathe);
  917. E int NDECL(dospit);
  918. E int NDECL(doremove);
  919. E int NDECL(dospinweb);
  920. E int NDECL(dosummon);
  921. E int NDECL(doconfuse);
  922. E int NDECL(dohide);
  923. #endif
  924. E const char *FDECL(body_part, (int));
  925. E int NDECL(poly_gender);
  926. #ifdef POLYSELF
  927. # ifdef GOLEMS
  928. E void FDECL(ugolemeffects, (int, int));
  929. # endif /* GOLEMS */
  930. #endif
  931.  
  932. /* ### potion.c ### */
  933.  
  934. E void FDECL(make_confused, (long,BOOLEAN_P));
  935. E void FDECL(make_stunned, (long,BOOLEAN_P));
  936. E void FDECL(make_blinded, (long,BOOLEAN_P));
  937. E void FDECL(make_sick, (long,BOOLEAN_P));
  938. E void FDECL(make_vomiting, (long,BOOLEAN_P));
  939. E void FDECL(make_hallucinated, (long,BOOLEAN_P));
  940. E int NDECL(dodrink);
  941. E int FDECL(dopotion, (struct obj *));
  942. E int FDECL(peffects, (struct obj *));
  943. E void FDECL(healup, (int,int,BOOLEAN_P,BOOLEAN_P));
  944. E void FDECL(strange_feeling, (struct obj *,const char *));
  945. E void FDECL(potionhit, (struct monst *,struct obj *));
  946. E void FDECL(potionbreathe, (struct obj *));
  947. E boolean FDECL(get_wet, (struct obj *));
  948. E int NDECL(dodip);
  949. E void FDECL(djinni_from_bottle, (struct obj *));
  950. E int FDECL(monster_detect, (struct obj *));
  951. E int FDECL(object_detect, (struct obj *));
  952. E int FDECL(trap_detect, (struct obj *));
  953.  
  954. /* ### pray.c ### */
  955.  
  956. # ifdef THEOLOGY
  957. E int NDECL(dosacrifice);
  958. E int NDECL(dopray);
  959. E const char *NDECL(u_gname);
  960. #endif /* THEOLOGY */
  961. E int NDECL(doturn);
  962. #ifdef ALTARS
  963. E const char *NDECL(a_gname);
  964. E const char *FDECL(a_gname_at, (XCHAR_P,XCHAR_P));
  965. # ifdef THEOLOGY
  966. E void FDECL(altar_wrath, (int,int));
  967. # endif
  968. #endif
  969.  
  970. /* ### pri.c ### */
  971.  
  972. E char *FDECL(eos, (char *));
  973. E void FDECL(swallowed, (int));
  974. E void NDECL(setclipped);
  975. #ifdef CLIPPING
  976. E void FDECL(cliparound, (int, int));
  977. #endif
  978. E boolean FDECL(showmon, (struct monst *));
  979. E void FDECL(at, (XCHAR_P,XCHAR_P,UCHAR_P,UCHAR_P));
  980. E void NDECL(prme);
  981. E void FDECL(shieldeff, (XCHAR_P,XCHAR_P));
  982. E int NDECL(doredraw);
  983. E void NDECL(docrt);
  984. E void FDECL(docorner, (int,int));
  985. E void NDECL(seeglds);
  986. E void NDECL(seeobjs);
  987. E void NDECL(seemons);
  988. E void FDECL(pmon, (struct monst *));
  989. E void FDECL(unpmon, (struct monst *));
  990. E void NDECL(nscr);
  991. E void NDECL(bot);
  992. E void FDECL(mstatusline, (struct monst *));
  993. E void NDECL(ustatusline);
  994. E void NDECL(cls);
  995. E void NDECL(max_rank_sz);
  996. E char NDECL(rndmonsym);
  997. E char NDECL(rndobjsym);
  998. E const char *NDECL(hcolor);
  999. E uchar FDECL(mimic_appearance, (struct monst *));
  1000.  
  1001. /* ### priest.c ### */
  1002.  
  1003. E int FDECL(move_special, (struct monst *,SCHAR_P,SCHAR_P,BOOLEAN_P,BOOLEAN_P,
  1004.             XCHAR_P,XCHAR_P,XCHAR_P,XCHAR_P));
  1005. #if defined(ALTARS) && defined(THEOLOGY)
  1006. E struct mkroom *FDECL(in_temple, (int,int));
  1007. E int FDECL(pri_move, (struct monst *));
  1008. E void FDECL(priestini, (int,int,int,int));
  1009. E char *FDECL(priestname, (struct monst *));
  1010. E boolean FDECL(p_coaligned, (struct monst *));
  1011. E void NDECL(intemple);
  1012. E void FDECL(priest_talk, (struct monst *));
  1013. E boolean FDECL(u_in_sanctuary, (struct mkroom *));
  1014. E void NDECL(ghod_hitsu);
  1015. E void NDECL(angry_priest);
  1016. #endif
  1017.  
  1018. /* ### prisym.c ### */
  1019.  
  1020. E void FDECL(atl, (int,int,CHAR_P));
  1021. E void FDECL(on_scr, (int,int));
  1022. E void FDECL(tmp_at, (int,int));
  1023. E void FDECL(Tmp_at2, (int,int));
  1024. E void NDECL(curs_on_u);
  1025. E void NDECL(pru);
  1026. E void FDECL(prl, (int,int));
  1027. E uchar FDECL(news0, (XCHAR_P,XCHAR_P));
  1028. E void FDECL(newsym, (int,int));
  1029. E void FDECL(mnewsym, (int,int));
  1030. E void FDECL(nosee, (int,int));
  1031. E void FDECL(prl1, (int,int));
  1032. E void FDECL(nose1, (int,int));
  1033. E int FDECL(vism_at, (int,int));
  1034. #ifdef NEWSCR
  1035. E void FDECL(pobj, (struct obj *));
  1036. #endif /* NEWSCR */
  1037. E void FDECL(unpobj, (struct obj *));
  1038. #ifdef STUPID_CPP    /* otherwise these functions are macros in rm.h */
  1039. E boolean FDECL(IS_WALL, (unsigned));
  1040. E boolean FDECL(IS_STWALL, (unsigned));
  1041. E boolean FDECL(IS_ROCK, (unsigned));
  1042. E boolean FDECL(IS_DOOR, (unsigned));
  1043. E boolean FDECL(ACCESSIBLE, (unsigned));
  1044. E boolean FDECL(IS_ROOM, (unsigned));
  1045. E boolean FDECL(ZAP_POS, (unsigned));
  1046. E boolean FDECL(SPACE_POS, (unsigned));
  1047. E boolean FDECL(IS_POOL, (unsigned));
  1048. E boolean FDECL(IS_THRONE, (unsigned));
  1049. E boolean FDECL(IS_FOUNTAIN, (unsigned));
  1050. E boolean FDECL(IS_SINK, (unsigned));
  1051. E boolean FDECL(IS_ALTAR, (unsigned));
  1052. E boolean FDECL(IS_DRAWBRIDGE, (unsigned));
  1053. E boolean FDECL(IS_FURNITURE, (unsigned));
  1054. #endif /* STUPID_CPP */
  1055.  
  1056. /* ### random.c ### */
  1057.  
  1058. #ifdef RANDOM
  1059. E void FDECL(srandom, (unsigned));
  1060. E char * FDECL(initstate, (unsigned,char *,int));
  1061. E char * FDECL(setstate, (char *));
  1062. E long NDECL(random);
  1063. #endif /* RANDOM */
  1064.  
  1065. /* ### read.c ### */
  1066.  
  1067. E int NDECL(doread);
  1068. E int FDECL(seffects, (struct obj *));
  1069. E void FDECL(litroom, (BOOLEAN_P));
  1070. E void FDECL(do_genocide, (int));
  1071. E void NDECL(do_mapping);
  1072. E void NDECL(do_vicinity_map);
  1073. E int FDECL(gold_detect, (struct obj *));
  1074. E int FDECL(food_detect, (struct obj *));
  1075. E void FDECL(punish, (struct obj *));
  1076. E void NDECL(unpunish);
  1077. E boolean FDECL(cant_create, (int *));
  1078. #if defined(WIZARD) || defined(EXPLORE_MODE)
  1079. E boolean NDECL(create_particular);
  1080. #endif
  1081.  
  1082. /* ### restore.c ### */
  1083.  
  1084. E int FDECL(dorecover, (int));
  1085. E void FDECL(getlev, (int,int,XCHAR_P,BOOLEAN_P));
  1086. #ifdef ZEROCOMP
  1087. E void NDECL(minit);
  1088. E int FDECL(mread, (int,genericptr_t,unsigned int));
  1089. #else
  1090. E void FDECL(mread, (int,genericptr_t,unsigned int));
  1091. #endif
  1092.  
  1093. /* ### rip.c ### */
  1094.  
  1095. E void NDECL(outrip);
  1096.  
  1097. /* ### rnd.c ### */
  1098.  
  1099. E int FDECL(rn1, (int,int));
  1100. E int FDECL(rn2, (int));
  1101. E int FDECL(rnl, (int));
  1102. E int FDECL(rnd, (int));
  1103. E int FDECL(d, (int,int));
  1104. E int FDECL(rne, (int));
  1105. #ifdef THEOLOGY
  1106. E int FDECL(rnz, (int));
  1107. #endif
  1108.  
  1109. /* ### rumors.c ### */
  1110.  
  1111. E void FDECL(outrumor, (int,BOOLEAN_P));
  1112. #ifdef ORACLE
  1113. E int FDECL(doconsult, (struct monst *));
  1114. #endif
  1115.  
  1116. /* ### save.c ### */
  1117.  
  1118. E int NDECL(dosave);
  1119. #ifndef NOSAVEONHANGUP
  1120. E int NDECL(hangup);
  1121. #endif /* NOSAVEONHANGUP */
  1122. E int NDECL(dosave0);
  1123. #if defined(DGK) && !defined(OLD_TOS)
  1124. E boolean FDECL(savelev, (int,XCHAR_P,int));
  1125. E boolean FDECL(swapin_file, (int));
  1126. #else /* DGK && !OLD_TOS */
  1127. E void FDECL(savelev, (int, XCHAR_P));
  1128. #endif /* DGK && !OLD_TOS */
  1129. #ifdef ZEROCOMP
  1130. E void FDECL(bflush, (int));
  1131. #endif
  1132. E void FDECL(bwrite, (int,genericptr_t,unsigned int));
  1133. #ifdef TUTTI_FRUTTI
  1134. E void FDECL(savefruitchn, (int));
  1135. #endif
  1136.  
  1137. /* ### search.c ### */
  1138.  
  1139. E int NDECL(findit);
  1140. E int NDECL(dosearch);
  1141. E int FDECL(dosearch0, (int));
  1142. E int NDECL(doidtrap);
  1143. E void FDECL(wakeup, (struct monst *));
  1144. E void FDECL(seemimic, (struct monst *));
  1145.  
  1146. /* ### shk.c ### */
  1147.  
  1148. E char *FDECL(shkname, (struct monst *));
  1149. E void FDECL(shkdead, (struct monst *));
  1150. E void FDECL(replshk, (struct monst *,struct monst *));
  1151. E int NDECL(inshop);
  1152. E int FDECL(inhishop, (struct monst *));
  1153. #ifdef SOUNDS
  1154. E boolean FDECL(tended_shop, (struct mkroom *));
  1155. #endif
  1156. E void FDECL(obfree, (struct obj *,struct obj *));
  1157. E int NDECL(dopay);
  1158. E void FDECL(home_shk, (struct monst *));
  1159. E void FDECL(make_happy_shk, (struct monst *));
  1160. E boolean NDECL(paybill);
  1161. E void FDECL(pay_for_door, (int,int,const char *));
  1162. E void FDECL(addtobill, (struct obj *,BOOLEAN_P));
  1163. E void FDECL(splitbill, (struct obj *,struct obj *));
  1164. E void FDECL(subfrombill, (struct obj *));
  1165. E void FDECL(sellobj, (struct obj *));
  1166. E int FDECL(doinvbill, (int));
  1167. E int FDECL(shkcatch, (struct obj *));
  1168. E int FDECL(shk_move, (struct monst *));
  1169. E int FDECL(online, (XCHAR_P,XCHAR_P));
  1170. E boolean FDECL(is_fshk, (struct monst *));
  1171. E void FDECL(shopdig, (int));
  1172. E boolean FDECL(in_shop, (int,int));
  1173. E boolean FDECL(costly_spot, (int,int));
  1174. E void FDECL(check_unpaid, (struct obj *));
  1175. E boolean FDECL(block_door, (int,int));
  1176. E boolean FDECL(block_entry, (int,int));
  1177.  
  1178. /* ### shknam.c ### */
  1179.  
  1180. E void FDECL(stock_room, (const struct shclass *,struct mkroom *));
  1181. E int FDECL(saleable, (int,struct obj *));
  1182. E int FDECL(get_shop_item, (int));
  1183.  
  1184. /* ### sit.c ### */
  1185.  
  1186. #if defined(THRONES) || defined(SPELLS)
  1187. E void NDECL(take_gold);
  1188. #endif
  1189. E int NDECL(dosit);
  1190. E void NDECL(rndcurse);
  1191. E void NDECL(attrcurse);
  1192.  
  1193. /* ### sounds.c ### */
  1194.  
  1195. E void FDECL(verbalize, (const char *));
  1196. #ifdef SOUNDS
  1197. E void NDECL(dosounds);
  1198. E void FDECL(growl, (struct monst *));
  1199. E void FDECL(yelp, (struct monst *));
  1200. E void FDECL(whimper, (struct monst *));
  1201. #endif
  1202. E struct monst *FDECL(qname, (struct monst *));
  1203. E int NDECL(dotalk);
  1204.  
  1205. /* ### sp_lev.c ### */
  1206.  
  1207. #ifdef STRONGHOLD
  1208. E boolean FDECL(load_special, (const char *));
  1209. #endif /* STRONGHOLD /**/
  1210.  
  1211. /* ### spell.c ### */
  1212. #ifdef SPELLS
  1213. #ifdef OVERLAY
  1214. E int NDECL(learn);
  1215. #endif
  1216. E int FDECL(study_book, (struct obj *));
  1217. E int NDECL(docast);
  1218. E int FDECL(spelleffects, (int, BOOLEAN_P));
  1219. E void NDECL(losespells);
  1220. E int NDECL(dovspell);
  1221. #endif /* SPELLS */
  1222.  
  1223. /* ### steal.c ### */
  1224.  
  1225. #ifdef OVERLAY
  1226. E int NDECL(stealarm);
  1227. #endif
  1228. E long NDECL(somegold);
  1229. E void FDECL(stealgold, (struct monst *));
  1230. E int FDECL(steal, (struct monst *));
  1231. E void FDECL(mpickobj, (struct monst *,struct obj *));
  1232. E void FDECL(stealamulet, (struct monst *));
  1233. E void FDECL(relobj, (struct monst *,int));
  1234.  
  1235. /* ### termcap.c ### */
  1236.  
  1237. E void NDECL(startup);
  1238. E void NDECL(start_screen);
  1239. E void NDECL(end_screen);
  1240. #ifdef CLIPPING
  1241. E boolean FDECL(win_curs, (int,int));
  1242. #endif
  1243. E void FDECL(curs, (int,int));
  1244. E void FDECL(cmov, (int,int));
  1245. E void FDECL(xputc, (CHAR_P));
  1246. E void FDECL(xputs, (const char *));
  1247. E void NDECL(cl_end);
  1248. E void NDECL(clear_screen);
  1249. E void NDECL(home);
  1250. E void NDECL(standoutbeg);
  1251. E void NDECL(standoutend);
  1252. E void NDECL(revbeg);
  1253. #if 0
  1254. E void NDECL(boldbeg);
  1255. E void NDECL(blinkbeg);
  1256. E void NDECL(dimbeg);
  1257. #endif
  1258. E void NDECL(m_end);
  1259. E void NDECL(backsp);
  1260. E void NDECL(bell);
  1261. E void NDECL(graph_on);
  1262. E void NDECL(graph_off);
  1263. E void NDECL(delay_output);
  1264. E void NDECL(cl_eos);
  1265.  
  1266. /* ### timeout.c ### */
  1267.  
  1268. E void NDECL(timeout);
  1269. E void NDECL(hatch_eggs);
  1270.  
  1271. /* ### topl.c ### */
  1272.  
  1273. E int NDECL(doredotopl);
  1274. E void NDECL(remember_topl);
  1275. E void FDECL(addtopl, (const char *));
  1276. E void NDECL(more);
  1277. E void FDECL(cmore, (const char *));
  1278. E void NDECL(clrlin);
  1279. #ifdef NEED_VARARGS
  1280. # if defined(USE_STDARG) || defined(USE_VARARGS)
  1281. E void FDECL(vpline, (const char *, va_list));
  1282. # endif
  1283. #endif
  1284. E void VDECL(pline, (const char *,...));
  1285. E void VDECL(Norep, (const char *,...));
  1286. E void VDECL(You, (const char *,...));
  1287. E void VDECL(Your, (const char *,...));
  1288. E void VDECL(kludge, (const char *,const char *,...));
  1289. E void FDECL(putsym, (CHAR_P));
  1290. E void FDECL(putstr, (const char *));
  1291. E char FDECL(yn_function, (const char *,CHAR_P));
  1292. E void VDECL(impossible, (const char *,...));
  1293.  
  1294. /* ### topten.c ### */
  1295.  
  1296. E void FDECL(topten, (int));
  1297. E void FDECL(prscore, (int,char **));
  1298. E struct obj *FDECL(tt_oname, (struct obj *));
  1299.  
  1300. /* ### track.c ### */
  1301.  
  1302. E void NDECL(initrack);
  1303. E void NDECL(settrack);
  1304. E coord *FDECL(gettrack, (int,int));
  1305.  
  1306. /* ### trap.c ### */
  1307.  
  1308. E boolean FDECL(rust_dmg, (struct obj *,const char *,int,BOOLEAN_P));
  1309. E struct trap *FDECL(maketrap, (int,int,int));
  1310. E int FDECL(teleok, (int,int));
  1311. E void FDECL(fall_through, (BOOLEAN_P));
  1312. E void FDECL(dotrap, (struct trap *));
  1313. E int FDECL(mintrap, (struct monst *));
  1314. E void FDECL(selftouch, (const char *));
  1315. E void NDECL(float_up);
  1316. E int NDECL(float_down);
  1317. E void NDECL(tele);
  1318. E void FDECL(teleds, (int,int));
  1319. E int NDECL(dotele);
  1320. E void FDECL(placebc, (int));
  1321. E void NDECL(unplacebc);
  1322. E void NDECL(level_tele);
  1323. E void NDECL(drown);
  1324. #ifdef SPELLS
  1325. E void FDECL(drain_en, (int));
  1326. #endif
  1327. E int NDECL(dountrap);
  1328. E boolean FDECL(chest_trap, (struct obj *,int));
  1329. E void NDECL(wake_nearby);
  1330. E void FDECL(deltrap, (struct trap *));
  1331. E struct trap *FDECL(t_at, (int,int));
  1332. E void FDECL(b_trapped, (const char *));
  1333. E boolean NDECL(unconscious);
  1334.  
  1335. /* ### u_init.c ### */
  1336.  
  1337. E void NDECL(u_init);
  1338. E void NDECL(plnamesuffix);
  1339.  
  1340. /* ### uhitm.c ### */
  1341.  
  1342. E struct monst *FDECL(clone_mon, (struct monst *));
  1343. E boolean FDECL(special_case, (struct monst *));
  1344. E schar FDECL(find_roll_to_hit, (struct monst *));
  1345. E boolean FDECL(attack, (struct monst *));
  1346. E boolean FDECL(hmon, (struct monst *,struct obj *,int));
  1347. #ifdef POLYSELF
  1348. E int FDECL(damageum, (struct monst *, struct attack *));
  1349. E void FDECL(missum, (struct monst *, struct attack *));
  1350. #endif
  1351. E int FDECL(passive, (struct monst *,BOOLEAN_P,int,BOOLEAN_P));
  1352. E void FDECL(stumble_onto_mimic, (struct monst *));
  1353.  
  1354. /* ### unixmain.c ### */
  1355.  
  1356. #ifdef UNIX
  1357. E void FDECL(glo, (int));
  1358. E void NDECL(askname);
  1359. #endif /* UNIX */
  1360.  
  1361. /* ### unixtty.c ### */
  1362.  
  1363. #ifdef UNIX
  1364. E void NDECL(gettty);
  1365. E void FDECL(settty, (const char *));
  1366. E void NDECL(setftty);
  1367. E void NDECL(intron);
  1368. E void NDECL(introff);
  1369. E void VDECL(error, (const char *,...));
  1370. #endif /* UNIX */
  1371.  
  1372. /* ### unixunix.c ### */
  1373.  
  1374. #ifdef UNIX
  1375. E void NDECL(setrandom);
  1376. E int NDECL(getyear);
  1377. E char *NDECL(getdate);
  1378. E int NDECL(phase_of_the_moon);
  1379. E int NDECL(night);
  1380. E int NDECL(midnight);
  1381. E void FDECL(gethdate, (char *));
  1382. E int FDECL(uptodate, (int));
  1383. E void NDECL(getlock);
  1384. E void FDECL(regularize, (char *));
  1385. #endif /* UNIX */
  1386.  
  1387. /* ### vault.c ### */
  1388.  
  1389. E boolean FDECL(grddead, (struct monst *));
  1390. E void NDECL(invault);
  1391. E int FDECL(gd_move, (struct monst *));
  1392. E void NDECL(paygd);
  1393. #ifdef SOUNDS
  1394. E boolean NDECL(gd_sound);
  1395. #endif
  1396.  
  1397. /* ### version.c ### */
  1398.  
  1399. E int NDECL(doversion);
  1400. E int NDECL(doextversion);
  1401. #ifdef MSDOS
  1402. E int FDECL(comp_times,(long));
  1403. #endif
  1404.  
  1405. /* ### vmsmain.c ### */
  1406.  
  1407. #ifdef VMS
  1408. # ifdef CHDIR
  1409. E void FDECL(chdirx, (char *,BOOLEAN_P));
  1410. # endif /* CHDIR */
  1411. E void FDECL(glo, (int));
  1412. E void NDECL(askname);
  1413. #endif /* VMS */
  1414.  
  1415. /* ### vmsmisc.c ### */
  1416.  
  1417. #ifdef VMS
  1418. E void NDECL(vms_abort);
  1419. E void FDECL(vms_exit, (int));
  1420. #endif /* VMS */
  1421.  
  1422. /* ### vmstty.c ### */
  1423.  
  1424. #ifdef VMS
  1425. E void NDECL(gettty);
  1426. E void FDECL(settty, (char *));
  1427. E void NDECL(setftty);
  1428. E void NDECL(intron);
  1429. E void NDECL(introff);
  1430. E void VDECL(error, (char *,...));
  1431. #endif /* VMS */
  1432.  
  1433. /* ### vmsunix.c ### */
  1434.  
  1435. #ifdef VMS
  1436. E void NDECL(setrandom);
  1437. E int NDECL(getyear);
  1438. E char *NDECL(getdate);
  1439. E int NDECL(phase_of_the_moon);
  1440. E int NDECL(night);
  1441. E int NDECL(midnight);
  1442. E void FDECL(gethdate, (char *));
  1443. E int FDECL(uptodate, (int));
  1444. E void NDECL(getlock);
  1445. E void FDECL(regularize, (char *));
  1446. E int FDECL(vms_creat, (char *,unsigned int));
  1447. E int NDECL(vms_getuid);
  1448. E void NDECL(privoff);
  1449. E void NDECL(privon);
  1450. # ifdef SHELL
  1451. E int NDECL(dosh);
  1452. # endif
  1453. #endif /* VMS */
  1454.  
  1455. /* ### weapon.c ### */
  1456.  
  1457. E int FDECL(hitval, (struct obj *,struct permonst *));
  1458. E int FDECL(dmgval, (struct obj *,struct permonst *));
  1459. E void NDECL(set_uasmon);
  1460. E struct obj *FDECL(select_rwep, (struct monst *));
  1461. E struct obj *FDECL(select_hwep, (struct monst *));
  1462. E int NDECL(abon);
  1463. E int NDECL(dbon);
  1464.  
  1465. /* ### were.c ### */
  1466.  
  1467. E void FDECL(were_change, (struct monst *));
  1468. E void FDECL(new_were, (struct monst *));
  1469. E boolean FDECL(were_summon, (struct permonst *,BOOLEAN_P));
  1470. #ifdef POLYSELF
  1471. E void NDECL(you_were);
  1472. #endif /* POLYSELF */
  1473.  
  1474. /* ### wield.c ### */
  1475.  
  1476. E void FDECL(setuwep, (struct obj *));
  1477. E void NDECL(uwepgone);
  1478. E int NDECL(dowield);
  1479. E void NDECL(corrode_weapon);
  1480. E int FDECL(chwepon, (struct obj *,int));
  1481. E int FDECL(welded, (struct obj *));
  1482. E void FDECL(weldmsg, (struct obj *,BOOLEAN_P));
  1483.  
  1484. /* ### wizard.c ### */
  1485.  
  1486. E void NDECL(amulet);
  1487. E int FDECL(mon_has_amulet, (struct monst *));
  1488. E int FDECL(wiz_get_amulet, (struct monst *));
  1489. E void NDECL(aggravate);
  1490. E void NDECL(clonewiz);
  1491. #ifdef HARD
  1492. E void NDECL(nasty);
  1493. E void NDECL(resurrect);
  1494. E void NDECL(intervene);
  1495. E void FDECL(wizdead, (struct monst *));
  1496. #endif /* HARD */
  1497. E void FDECL(cuss, (struct monst *));
  1498.  
  1499. /* ### worm.c ### */
  1500.  
  1501. #ifdef WORM
  1502. E int FDECL(getwn, (struct monst *));
  1503. E void FDECL(initworm, (struct monst *));
  1504. E void FDECL(worm_move, (struct monst *));
  1505. E void FDECL(worm_nomove, (struct monst *));
  1506. E void FDECL(wormdead, (struct monst *));
  1507. E void FDECL(wormhit, (struct monst *));
  1508. E void FDECL(wormsee, (unsigned int));
  1509. E void FDECL(cutworm, (struct monst *,XCHAR_P,XCHAR_P,unsigned));
  1510. #endif /* WORM */
  1511.  
  1512. /* ### worn.c ### */
  1513.  
  1514. E void FDECL(setworn, (struct obj *,long));
  1515. E void FDECL(setnotworn, (struct obj *));
  1516.  
  1517. /* ### write.c ### */
  1518.  
  1519. E void FDECL(dowrite, (struct obj *));
  1520.  
  1521. /* ### zap.c ### */
  1522.  
  1523. #ifdef OVERLAY
  1524. E int FDECL(bhito, (struct obj *, struct obj *));
  1525. E int FDECL(bhitm, (struct monst *, struct obj *));
  1526. #endif
  1527. E struct monst *FDECL(revive, (struct obj *,BOOLEAN_P));
  1528. E int FDECL(zappable, (struct obj *));
  1529. E void FDECL(zapnodir, (struct obj *));
  1530. E int NDECL(dozap);
  1531. E int FDECL(zapyourself, (struct obj *));
  1532. E void FDECL(weffects, (struct obj *));
  1533. E const char *FDECL(exclam, (int));
  1534. E void FDECL(hit, (const char *,struct monst *,const char *));
  1535. E void FDECL(miss, (const char *,struct monst *));
  1536. E struct monst *FDECL(bhit, (int,int,int,CHAR_P,int FDECL((*), (struct monst *, struct obj *)),
  1537.   int FDECL((*), (struct obj *, struct obj *)),struct obj *));
  1538. E struct monst *FDECL(boomhit, (int,int));
  1539. E void FDECL(buzz, (int,int,XCHAR_P,XCHAR_P,int,int));
  1540. E void FDECL(rlocgold, (struct gold *));
  1541. E void FDECL(rloco, (struct obj *));
  1542. E void FDECL(fracture_rock, (struct obj *));
  1543. E boolean FDECL(break_statue, (struct obj *));
  1544. E void FDECL(destroy_item, (int,int));
  1545. E int FDECL(destroy_mitem, (struct monst *,int,int));
  1546. E int FDECL(resist, (struct monst *,CHAR_P,int,int));
  1547. E void NDECL(makewish);
  1548.  
  1549. #endif /* !MAKEDEFS_C && !LEV_LEX_C */
  1550.  
  1551. #undef E
  1552.  
  1553. #endif /* EXTERN_H /**/
  1554.